package flst.ipiweb.struts.action.paiement;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import flst.ipiweb.service.ServicePaiement;
import flst.ipiweb.transverse.IPIException;
import flst.ipiweb.transverse.ModeDePaiement;

public class ListModePaiementPostAction extends Action{
	
	public ActionForward execute(
			ActionMapping mapping, 
			ActionForm form,
			HttpServletRequest request, 
			HttpServletResponse response)
			throws Exception {
		
			//On récupère la session
			HttpSession session = request.getSession();
			if(session.getAttribute("login") == null)
			{
				return mapping.findForward("login");
			}
		
			//Récupération de la liste des modes de paiement
			ServicePaiement sPaiement = new ServicePaiement();
			List<ModeDePaiement> listMode = sPaiement.listerModeDePaiement();
			ModePaiementForm vModePaiementForm = (ModePaiementForm) form;
			int[] vAccesNormal = new int[10];
			int[] vAccesSuper = new int[10];
			for(Integer id : vModePaiementForm.getAccesClientNormal())
			{
				vAccesNormal[id] = id;
			}
			for(Integer id : vModePaiementForm.getAccesSuperClient())
			{
				vAccesSuper[id] = id;
			}
			for(ModeDePaiement mode : listMode)
			{
				int idMode = mode.getIdModePaiement();
				mode.setAccesClientClassique(false);
				mode.setAccesSuperClient(false);
				if(vAccesNormal[idMode] == idMode)
				{
					mode.setAccesClientClassique(true);
				}
				if(vAccesSuper[idMode] == idMode)
				{
					mode.setAccesSuperClient(true);
				}
				
			}
			

			try
			{
				sPaiement.updateLesModeDePaiement(listMode);
				//Message de succes
				session.setAttribute("success", "ModeDePaiementSuccess.update");
				session.setAttribute("error", null);
			}
			catch(IPIException e)
			{
				//Message d'erreur
				session.setAttribute("error", e.getMessage());
				session.setAttribute("success", null);
			}
			

			return mapping.findForward("list_mode_paiement");
		}

}
